{"componentChunkName":"component---node-modules-gatsby-theme-garden-src-templates-local-file-js","path":"/pnpm monorepo 구성하기","result":{"data":{"file":{"childMdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"full-stack web project monorepo\",\n  \"author\": \"vlwkaos\",\n  \"tags\": [],\n  \"aliases\": [],\n  \"created\": \"2023-01-31:20:38:42\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"pnpm monorepo \\uAD6C\\uC131\\uD558\\uAE30\"), mdx(\"h2\", null, \"\\uAC1C\\uC694\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\uD234\\uCCB4\\uC778\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"pnpm\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"vite\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"typescript\")))), mdx(\"h2\", null, \"\\uB514\\uB809\\uD1A0\\uB9AC \\uAD6C\\uC131\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"app\\uACFC library\\uB85C \\uAD6C\\uC131\\uD574\\uBCF4\\uACA0\\uB2E4.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"pnpm\\uC73C\\uB85C \\uBAA8\\uB178\\uB808\\uD3EC\\uB97C \\uAD6C\\uC131\\uD558\\uAE30 \\uC704\\uD574\\uC11C\\uB294 \\uB2E4\\uC74C\\uB9CC \\uC788\\uC73C\\uBA74 \\uB41C\\uB2E4.\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"pnpm-workspace.yaml\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"package.json\"))))), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yaml\"\n  }, \"# pnpm-workspace.yaml\\n\\npackages:\\n  - 'packages/apps/*'\\n  - 'packages/libs/*'\\n  - '!**/test/**'\\n\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"pnpm\"), \" \\uC0AC\\uC6A9\\uC744 \\uAC15\\uC81C\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uB2E4\\uC74C\\uC758 \\uC2A4\\uD06C\\uB9BD\\uD2B8\\uB97C \\uCD94\\uAC00\\uD55C\\uB2E4.\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"# package.json\\n\\n\\\"preinstall\\\": \\\"npx only-allow pnpm\\\"\\n\")), mdx(\"h2\", null, \"\\uB370\\uBAA8 \\uB9CC\\uB4E4\\uAE30\"), mdx(\"h2\", null, \"templates\"), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"templates\"), \" \\uD3F4\\uB354\\uB97C \\uB9CC\\uB4E4\\uC5B4\\uC11C \\uC790\\uC8FC \\uC0AC\\uC6A9\\uD560 \\uD3F4\\uB354\\uB098 \\uAD6C\\uC870\\uB97C \\uC800\\uC7A5\\uD574\\uB454\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-sh\"\n  }, \"templates/\\n\\u3134 *\\n\")), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"templates\"), \"\\uC5D0 \\uC788\\uB294 \\uD30C\\uC77C\\uB4E4\\uC740 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"packages/*\"), \" \\uAE30\\uC900\\uC73C\\uB85C \\uC791\\uC131\\uB41C \\uAC83\\uC744 \\uADF8\\uB300\\uB85C \\uC62E\\uACA8\\uB1A8\\uAE30 \\uB54C\\uBB38\\uC5D0 vscode\\uB97C \\uC0AC\\uC6A9\\uD55C\\uB2E4\\uBA74 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"tsconfig.json\"), \" \\uD30C\\uC77C\\uC774 \\uC720\\uD6A8\\uD558\\uAE30 \\uC54A\\uB2E4\\uACE0 \\uC5D0\\uB7EC\\uB97C \\uBC49\\uC744 \\uC218 \\uC788\\uB2E4. \"), mdx(\"p\", null, \"\\uB2E4\\uC74C\\uC744 vscode \\uC6CC\\uD06C\\uC2A4\\uD398\\uC774\\uC2A4 \\uC138\\uD305\\uC73C\\uB85C \\uCD94\\uAC00\\uD558\\uBA74 typescript validation\\uC744 \\uC81C\\uC678\\uC2DC\\uD0AC \\uC218 \\uC788\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"// .vscode/settings.json\\n\\n{\\n  \\\"json.schemas\\\": [\\n    {\\n      \\\"fileMatch\\\": [\\n        \\\"templates/*/tsconfig.json\\\",\\n      ],\\n      \\\"url\\\": \\\"schemas/tsconfig.schema.json\\\",\\n      \\\"validationLevel\\\": \\\"off\\\"\\n    }\\n  ]\\n}\\n\")), mdx(\"h2\", null, \"generator \\uB9CC\\uB4E4\\uAE30\"), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"templates\"), \" \\uC5D0 \\uCD94\\uAC00\\uD574\\uB454 \\uD30C\\uC77C\\uB4E4\\uC740 \\uC774\\uBBF8 \\uC815\\uD574\\uC9C4 \\uC774\\uB984\\uC744 \\uC0AC\\uC6A9\\uD55C\\uB2E4.\\n\\uC774 \\uBD80\\uBD84\\uC744 \\uAC04\\uB2E8\\uD55C \\uC2A4\\uD06C\\uB9BD\\uD2B8\\uB97C \\uC791\\uC131\\uD558\\uC5EC \\uBC14\\uAFD4\\uBCF4\\uC790.\"), mdx(\"p\", null, \"\\uC6B0\\uC120 \\uC2A4\\uD06C\\uB9BD\\uD2B8 \\uC2E4\\uD589 \\uD658\\uACBD\\uC744 \\uB9CC\\uB4E4\\uAE30 \\uC704\\uD574 \\uB2E4\\uC74C \\uC758\\uC874\\uC131\\uC744 \\uC124\\uCE58\\uD55C\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"pnpm add ts-node @types/node\\n\")), mdx(\"p\", null, \"\\uADF8\\uB9AC\\uACE0 \\uC2A4\\uD06C\\uB9BD\\uD2B8 \\uD30C\\uC77C\\uC744 \\uB9CC\\uB4E0\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"tools/generator.ts\\n\")), mdx(\"p\", null, \"\\u315C\"));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[],"inboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Monorepo 모노레포\",\n  \"author\": \"vlwkaos\",\n  \"tags\": [],\n  \"aliases\": [],\n  \"created\": \"2022-08-25:20:44:26\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Monorepo \\uBAA8\\uB178\\uB808\\uD3EC\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://monorepo.tools/\"\n  }, \"https://monorepo.tools/\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"nx, pnpm, rush\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://blog.nrwl.io/setup-a-monorepo-with-pnpm-workspaces-and-speed-it-up-with-nx-bc5d97258a7e#d69f\"\n  }, \"pnpm workspace + nx\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://levelup.gitconnected.com/testing-complex-mono-projects-ea06dc879f2\"\n  }, \"Integration testing in monorepo\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/pnpm%20monorepo%20%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0\",\n    \"title\": \"pnpm monorepo 구성하기\"\n  }, \"[[pnpm monorepo \\uAD6C\\uC131\\uD558\\uAE30]]\"), \"\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/pnpm%20simple%20monorepo%20cli\",\n    \"title\": \"pnpm simple monorepo cli\"\n  }, \"[[pnpm simple monorepo cli]]\"), \"\")));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"File","id":"619554ca-6d12-5c3b-897e-f2d2fdc97e94","fields":{"slug":"/Monorepo 모노레포","title":"Monorepo 모노레포"}}}]},"fields":{"slug":"/pnpm monorepo 구성하기","title":"pnpm monorepo 구성하기"}}},"pageContext":{"id":"ab400ca6-4f7f-5b23-beca-56da0ddfdfee"}},"staticQueryHashes":["2098632890","2468095761"]}